package com.ly.heart.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ly.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 勘测合作方/路条人信息对象 erp_survey_referee_info
 *
 * @author wutao
 * @date 2024-05-22
 */
@TableName ( "erp_survey_referee_info" )
@ApiModel ( value = "erp_survey_referee_info对象", description = "勘测合作方/路条人信息" )
@Data
public class SurveyRefereeEntity extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId ( value = "id", type = IdType.INPUT )
    private String id;

    /**
     * 合作方姓名
     */
    @ApiModelProperty ( "合作方姓名" )
    @TableField ( "name" )
    @Excel ( name = "合作方姓名" )
    private String name;

    /**
     * 联系方式
     */
    @ApiModelProperty ( "联系方式" )
    @TableField ( "tel" )
    @Excel ( name = "联系方式" )
    private String tel;

    /**
     * 省份Id
     */
    @ApiModelProperty ( "省份Id" )
    @TableField ( "province_id" )
    @Excel ( name = "省份Id" )
    private String provinceId;

    /**
     * 城市Id
     */
    @ApiModelProperty ( "城市Id" )
    @TableField ( "city_id" )
    @Excel ( name = "城市Id" )
    private String cityId;

    /**
     * 区县Id
     */
    @ApiModelProperty ( "区县Id" )
    @TableField ( "county_id" )
    @Excel ( name = "区县Id" )
    private String countyId;

    /**
     * 级别
     */
    @ApiModelProperty ( "级别" )
    @TableField ( "level" )
    @Excel ( name = "级别" )
    private String level;

    /**
     * 喜好
     */
    @ApiModelProperty ( "喜好" )
    @TableField ( "hobby" )
    @Excel ( name = "喜好" )
    private String hobby;

    /**
     * 账号名称
     */
    @ApiModelProperty ( "账号名称" )
    @TableField ( "account_name" )
    @Excel ( name = "账号名称" )
    private String accountName;

    /**
     * 开户行
     */
    @ApiModelProperty ( "开户行" )
    @TableField ( "bank_name" )
    @Excel ( name = "开户行" )
    private String bankName;

    /**
     * 银行账号
     */
    @ApiModelProperty ( "银行账号" )
    @TableField ( "account" )
    @Excel ( name = "银行账号" )
    private String account;

    /**
     * 资源背景
     */
    @ApiModelProperty ( "资源背景" )
    @TableField ( "resource_background" )
    @Excel ( name = "资源背景" )
    private String resourceBackground;

    /**
     * 公司名称
     */
    @ApiModelProperty ( "公司名称" )
    @TableField ( "company_name" )
    @Excel ( name = "公司名称" )
    private String companyName;

    /**
     * 税号
     */
    @ApiModelProperty ( "税号" )
    @TableField ( "tax_id" )
    @Excel ( name = "税号" )
    private String taxId;

    /**
     * 公司经营地址
     */
    @ApiModelProperty ( "公司经营地址" )
    @TableField ( "address" )
    @Excel ( name = "公司经营地址" )
    private String address;

    /**
     * 合同内容，使用MD，可使用合同模板
     */
    @ApiModelProperty ( "合同内容，使用MD，可使用合同模板" )
    @TableField ( "contract_content" )
    @Excel ( name = "合同内容，使用MD，可使用合同模板" )
    private String contractContent;

    /**
     * 备注
     */
    @ApiModelProperty ( "备注" )
    @TableField ( "remarks" )
    @Excel ( name = "备注" )
    private String remarks;

    /**
     * 申请人Id，登录用户Id
     */
    @ApiModelProperty ( "申请人Id，登录用户Id" )
    @TableField ( "user_id" )
    @Excel ( name = "申请人Id，登录用户Id" )
    private String userId;

    /**
     * 更新时间
     */
    @ApiModelProperty ( "更新时间" )
    @TableField ( "change_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date changeTime;

    /**
     * $column.columnComment
     */
    @ApiModelProperty ( "更新时间" )
    @TableField ( "is_used" )
    @Excel ( name = "更新时间" )
    private Integer isUsed;

    @TableField(exist = false)
    private List<FileEntity> fileEntities;

    @Override
    public String toString () {
        return new ToStringBuilder ( this, ToStringStyle.MULTI_LINE_STYLE )
                .append ( "id", getId () )
                .append ( "name", getName () )
                .append ( "tel", getTel () )
                .append ( "provinceId", getProvinceId () )
                .append ( "cityId", getCityId () )
                .append ( "countyId", getCountyId () )
                .append ( "level", getLevel () )
                .append ( "hobby", getHobby () )
                .append ( "accountName", getAccountName () )
                .append ( "bankName", getBankName () )
                .append ( "account", getAccount () )
                .append ( "resourceBackground", getResourceBackground () )
                .append ( "companyName", getCompanyName () )
                .append ( "taxId", getTaxId () )
                .append ( "address", getAddress () )
                .append ( "contractContent", getContractContent () )
                .append ( "remarks", getRemarks () )
                .append ( "userId", getUserId () )
                .append ( "createTime", getCreateTime () )
                .append ( "changeTime", getChangeTime () )
                .append ( "isUsed", getIsUsed () )
                .toString ();
    }
}
